Because an electronic device, such as an integrated circuit, will most lively contain many inputs and outputs and latches, an exhaustive test is unfeasible. Exhaustive testing of even a single latch would require not only coverage of all possible inputs and outputs but also coverage of all possible sequences of inputs.
In attempting to solve this problem, cumulative tests have been developed which succeed in achieving extremely high coverage (typically identifying 99.9% of defective devices). In a typical cumulative test, a pattern of signals is inputted to the device and the outputs of various gates and latches are examined. A set of compressed outputs are collectively known as a signature. The signature will invariably be a compressed representation of the outputs of all the gates and latches on the device. Furthermore, a defect in a latch may only manifest itself as an output error after a number of successive cycles. Consequently, the existence of a defective latch or gate could easily fail to affect the resulting signature. However, application of a proper sequence of input patterns will cause most possible defects to eventually manifest in the signature.
Comparing the signature after each input pattern is applied would significantly slow down the test. However, by introducing feedback into the register containing the signature, only the last signature needs to be checked. After the input pattern is applied to the device, the outputs of the device and the contents of the register (which is the signature that resulted from the application of the previous input pattern) are input to an Exclusive-OR circuit (XOR). At the next clock signal, the outputs of the XOR-circuit are loaded into the shift register. Additionally, the shift register contains a number of feedback bits. In this manner, the signature contained in the register is not only cumulative of the outputs for the current input pattern, but is cumulative of the outputs for all of the input patterns that have been applied previously. Therefore, when a defect in a latch or gate results in an error in the signature, this error will continue to propagate into every subsequent signature until the test is completed. Consequently, in order to perform pass or fail testing of the device, only the last signature needs to be compared to the predetermined valid signature of a defect-free device. It will be appreciated that some errors will be masked during compression of the output responses to form the signature.
This method of testing is highly effective in pass or fail testing. But when the cause of the defect or failure needs to be determined, the test encounters severe diagnostic problems. To aid the diagnostic process, the input patterns are manipulated in a manner that a defect can be deduced based on the information contained in the signatures that are in error. However, a defect might cause more than one signature to be in error. Additionally, the device might have more than one defect.
A problem arises in determining the signatures that contain information that are useful in resolving the error. Reviewing each signature would successfully find the first signature that was in error. However, because of the use of feedback, every subsequent signature would also be in error. Although a subsequent signature is in error, the error could be the mere result of an earlier error propagating itself due to feedback in the register and not the result of an incorrect output. Therefore, although in error, the signature contains information that is redundant as far as determining the location of the failure.
One approach is to subdivide the test into a set of smaller intervals. At the end of each interval, the register is compared to a predetermined output, and then reset. This way an output that is in error would be confined to its interval. At the completion of the test, the intervals containing errors are noted. These intervals are then retested and all of the signatures that are in error are recorded. While this may reduce the number of signatures that are recorded, the number of recorded signatures is still proportional to the length of the interval and the amount of data that is collected can quickly become too large.
The use of feedback in the register containing the signature greatly reduces the response data volume and increases the speed of the test by propagating an error in any signature to every subsequent signature. This same quality is what contributes to the difficulty in collecting the signatures which contain useful information about the fault(s) in the device. What is desired is a way to record only the signatures with errors that resulted from failures in the device and not errors which are mere propagations of previous signatures that were in error.